#ifndef _PROCESS_H
#define _PROCESS_H

#define NUM_REGS 3

enum State { New, Ready, Waiting, Running, Terminated };

struct process_struct {
	int PID;		//only 128 
	int priority;		//what is the level at which this process should be run

    //may not need since bundle has a tacit understanding of the gid from group 
    //can store this in a fair_sched 
    //int group_id;   

	enum State process_state;	//what is the status of the process    

	int stack_pointer;	//a pointer to what the process will be running 
	int address_space;	//a pointer to what the process will be running 
	int registers[NUM_REGS];	//an array of registers

	int CPU_time;		//the time that the process has been on the cpu, in seconds

	struct process_struct *next_process;
	struct process_struct *prev_process;

	/*for the simulation */
	int run_time;		//how long should this process run for
	char *resource;		//what file/io/etc does this process have

};

#endif
